Evolved packet core (EPC) network error mapping

ABSTRACT

A first node device, associated with an evolved packet core network, receives an error code from a second node device associated with the evolved packet core network, where the error code is destined for a user equipment. The first node device compares the error code to information included in a data structure that maps multiple error codes to multiple translated error codes understood by the user equipment, and translates the error code into a translated error code based on the comparing of the error code to the information included in the data structure. The translated error code is in a format that is understood by the user equipment. The first node device provides the translated error code to the user equipment or to a third node device associated with the evolved packet core network.

RELATED APPLICATIONS

This application is a continuation-in-part of U.S. patent application Ser. No. 13/432,324, filed Mar. 28, 2012, which claims priority, under 35 U.S.C. §119, to U.S. Provisional Patent Application Ser. No. 61/610,304, filed Mar. 13, 2012. The entire contents of U.S. patent application Ser. No. 13/432,324 and U.S. Provisional Patent Application Ser. No. 61/610,304 are hereby incorporated by reference.

BACKGROUND

In the Third Generation Partnership Project (3GPP), the fourth generation (4G) cellular network includes a radio access network (e.g., referred to as a long term evolution (LTE) network) and a wireless core network (e.g., referred to as evolved packet core (EPC) network). The LTE network is often called an evolved universal terrestrial radio access network (E-UTRAN). The EPC network is an all-Internet protocol (IP) packet-switched core network that supports high-speed wireless and wireline broadband access technologies. The EPC network allows user equipment (UEs) to access various services by connecting to the LTE network, an evolved high rate packet data (eHRPD) radio access network (RAN), and/or a wireless local area network (WLAN) RAN. The EPC network is a complex system that includes a number of network nodes that communicate with each other when UEs are accessing the EPC network. An evolved packet system (EPS) is defined to include both the LTE and EPC networks. EPS seeks to improve mobile technology through higher bandwidth, better spectrum efficiency, wider coverage, enhanced security, and full interworking with other access networks.

A network outage of the EPC network may be catastrophic to a telecommunications provider. For example, if both active and redundant packet data network (PDN) gateways (PGWs) of the EPC network fail, hundreds of thousands of UEs may be disconnected from the EPC network at the same time. Such a situation may create a tsunami-like event where all of the disconnected UEs attempt to reconnect to the EPC network at the same time and create a message surge that eventually overloads a re-authentication and reauthorization device (e.g., a home subscriber server (HSS)) of the EPC network. Authentication is one of the first steps that is performed when UEs are attempting to connect to the EPC network. The connecting UEs send signaling to mobility management entities (MMEs) of the EPC network, and the MMEs, in turn, send the signaling to the HSS for authentication of the UEs. During a message surge, MMEs may be able to sustain the large amount of UEs sending authentication requests at the same time. The HSS, however, may not be able to handle the large amount of authentication requests and may become overloaded. Once the HSS is overloaded, the connecting UEs may not receive service and connected UEs may lose service.

The 4G version of the EPC network may include network nodes that require significantly less space and power requirements than second generation (2G) circuit switched network nodes. The 4G network nodes may be designed to handle millions of UEs while occupying a small amount of space. However, standardization of the 4G version of the EPC network did not consider failure scenarios, such as the example scenario presented above. Thus, the 4G version of the EPC network remains susceptible to catastrophic network failures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an overview of an example implementation described herein;

FIG. 2 is a diagram of an example environment in which systems and/or methods described herein may be implemented;

FIG. 3 is a diagram of example components of a device that may correspond to one or more of the devices of the environment depicted in FIG. 2;

FIG. 4 is a diagram of example interactions among components of an example portion of the environment depicted in FIG. 2;

FIG. 5 is a diagram of example interactions among components of another example portion of the environment depicted in FIG. 2;

FIG. 6 is a diagram of example interactions among components of still another example portion of the environment depicted in FIG. 2; and

FIGS. 7 and 8 are flow charts of an example process for mapping error codes in an EPC network according to an implementation described herein.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.

Systems and/or methods described herein may provide mechanisms to prevent failures in an EPC network. In one example, the systems and/or methods may provide mechanisms (e.g., data structures) that enable network nodes of the EPC network to translate or map error codes into a format that is understandable by a MME of the EPC network and/or by UEs connected to the MME.

FIG. 1 is a diagram of an overview of an example implementation described herein. As shown in FIG. 1, an EPS may include a UE, a LTE network, and an EPC network. The LTE network may include an eNodeB (eNB). The EPC network may include a variety of network nodes, such as, for example, a MME, a serving gateway (SGW), and a PGW. An equipment identity register (EIR) and a HSS may connect with the MME, and an authentication, authorization, and accounting (AAA) server may connect to the PGW.

The UE may include a radiotelephone, a personal communications system (PCS) terminal, a smart phone, a personal digital assistant (PDA), a laptop computer, a tablet computer, a desktop computer, a workstation computer, a personal computer, a landline telephone, etc. The LTE network may include a communications network that connects subscribers (e.g., the UE) to a service provider. The eNB may enable traffic to be communicated between the UE and the MME and/or the SGW.

The EPC network may include a core network architecture of the 3GPP LTE wireless communication standard. The MME may be responsible for idle mode tracking and paging procedures (e.g., including retransmissions) for the UE. The MME may be involved in a bearer activation/deactivation process (e.g., for the UE) and may choose a SGW for the UE at an initial attach and at a time of intra-LTE handover. The SGW may route and forward traffic, may act as a mobility anchor for a user plane during inter-eNB handovers, and may act as an anchor for mobility between LTE and other 3GPP technologies. The PGW may provide connectivity of the UE to external packet data networks by being a traffic exit/entry point for the UE.

The EIR may store a list of mobile devices (e.g., identified by an international mobile station equipment identity (IMEI)) that are to be monitored and/or banned from a network. The HSS may include a master user database that supports devices of an IP Multimedia Subsystem (IMS) network, that handle calls. The AAA server may perform AAA operations associated with a communication session with the UE.

In one example implementation, one or more the network nodes of the EPC network (e.g., the MME, the SGW, the PGW, the EIR, the HSS, and/or the AAA) may generate an error code that is eventually provided to the UE. For example, during a network outage, the network nodes may generate error codes that may be eventually provided to the MME. For example, the EIR and the HSS may provide error codes directly to the MME. The AAA server may provide an error code to the MME, via the PGW and the SGW. The error codes may attempt to deny connection requests from the UE and other UEs (not shown in FIG. 1) due to the network outage. In one example, the error codes may instruct the UEs to not attempt to connect to the EPC network for a particular period of time or until the UEs perform a power cycle.

The network nodes interfacing with the UE and the other UEs (e.g., the eNB and the MME) may provide the error codes to the UE and the other UEs. However, due to the variety of interfaces associated with the network nodes, the error codes may not be understood by the MME and/or the UEs. In one example implementation, data structures may be provided that define how the error codes at each network node are translated or mapped so that the error codes may be understood by the MME and/or the UEs. For example, as shown in FIG. 1, the MME may utilize the data structures to translate an error code (e.g., received from the EIR, the HSS, or the SGW) into a translated error code that may be understood by the UE. The MME may provide the translated error code to the eNB, and the eNB may provide the translated error code to the UE.

The term “traffic,” as used herein, is intended to be broadly construed to include a frame, a datagram, a packet, or a cell; a fragment of a frame, a fragment of a datagram, a fragment of a packet, or a fragment of a cell; or another type, arrangement, or packaging of data.

The term “component,” as used herein, is intended to be broadly construed to include hardware (e.g., a processor, a microprocessor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a chip, a memory device (e.g., a read only memory (ROM), a random access memory (RAM), etc.), etc.) or a combination of hardware and software (e.g., a processor, microprocessor, ASIC, etc. executing software contained in a memory device).

As used herein, the terms “user” and “subscriber” are intended to be broadly interpreted to include a UE, or a user of a UE.

FIG. 2 is a diagram of an example environment 200 in which systems and/or methods described herein may be implemented. As illustrated, environment 200 may include a UE 210, a LTE network 220, an EPC network 230, an IMS network 240, an EIR 250, and an AAA server 260. LTE network 220 may include an eNB 222. EPC network 230 may include a MME 232, a SGW 234, a policy and charging rule function (PCRF) 236, and a PGW 238. IMS network 240 may include a HSS 242. Devices/networks of environment 200 may interconnect via wired and/or wireless connections.

As further shown in FIG. 2, eNB 222 may interface with MME 232 over a S1-MME interface, and may interface with SGW 234 over a S1-U interface. MME 232 may interface with SGW 234 over a S11 interface, may interface with HSS 242 over a S6 a interface, and may interface with EIR 250 over a S13 interface. SGW 234 may interface with PGW 238 over a S5 interface. PCRF 236 may interface with PGW 238 over a Gx interface. PGW 238 may interface with AAA server 260 over a S6 b interface. Other interfaces not shown in FIG. 2 may also be utilized by devices of LTE network 220, EPC network 230, and/or IMS network 240. For example, multiple MMEs 232 may interface with one another over S10 interfaces.

UE 210 may include a radiotelephone; a PCS terminal that may combine, for example, a cellular radiotelephone with data processing and data communications capabilities; a smart phone; a PDA that can include a radiotelephone, a pager, Internet/intranet access, etc.; a laptop computer; a tablet computer; a desktop computer; a workstation computer; a personal computer; a landline telephone; or other types of computation and communication devices. In an example implementation, UE 210 may include a device that is capable of communicating over LTE network 220, EPC network 230, and/or IMS network 240.

LTE network 220 may include a communications network that connects subscribers (e.g., UE 210) to a service provider. In one example, LTE network 220 may include a WiFi network or other access networks (e.g., an E-UTRAN or an enhanced high-rate packet data (eHRPD) network). Alternatively, or additionally, LTE network 220 may include a radio access network capable of supporting high data rate, low latency, packet optimization, large capacity and coverage, etc.

eNB 222 may include one or more computation and communication devices that receive traffic from MME 232 and/or SGW 234 and transmit that traffic to UE 210. eNB 222 may also include one or more devices that receive traffic from UE 210 and transmit that traffic to MME 232 and/or SGW 234 or to other UEs 210. eNB 222 may combine the functionalities of a base station and a radio network controller (RNC) in 2G or 3G radio access networks.

EPC network 230 may include a core network architecture of the 3GPP LTE wireless communication standard. In one example, EPC network 230 may include an all-IP packet-switched core network that supports high-speed wireless and wireline broadband access technologies. In another example, EPC network 230 may provide packet-switched voice services (e.g., which are traditionally circuit-switched) using IMS network 240.

MME 232 may include one or more computation and communication devices that may be responsible for idle mode tracking and paging procedures (e.g., including retransmissions) for UE 210. MME 232 may be involved in a bearer activation/deactivation process (e.g., for UE 210) and may choose a SGW for UE 210 at an initial attach and at a time of intra-LTE handover. MME 232 may authenticate UE 210 (e.g., via interaction with HSS 242). Non-access stratum (NAS) signaling may terminate at MME 232 and MME 232 may generate and allocate temporary identities to UEs (e.g., UE 210). MME 232 may check authorization of UE 210 to camp on a service provider's Public Land Mobile Network (PLMN) and may enforce roaming restrictions for UE 210. MME 232 may be a termination point in EPC network 230 for ciphering/integrity protection for NAS signaling and may handle security key management. MME 232 may provide a control plane function for mobility between LTE and access networks with a S3 interface terminating at MME 232. MME 232 may also terminate a S6 a interface towards HSS 242 for roaming UEs.

SGW 234 may include one or more traffic transfer devices (or network devices), such as a gateway, a router, a switch, a firewall, a network interface card (NIC), a hub, a bridge, a proxy server, an optical add-drop multiplexer (OADM), or some other type of device that processes and/or transfers traffic. In one example implementation, SGW 234 may route and forward user data packets, may act as a mobility anchor for a user plane during inter-eNB handovers, and may act as an anchor for mobility between LTE and other 3GPP technologies. For idle state UEs 210, SGW 234 may terminate a downlink (DL) data path and may trigger paging when DL data arrives for UE 210. SGW 234 may manage and store contexts associated with UE 210 (e.g., parameters of an IP bearer service, network internal routing information, etc.).

PCRF 236 may include one or more computation and communication devices that may provide policy control decision and flow based charging control functionalities. PCRF 236 may provide network control regarding service data flow detection, gating, quality of service (QoS) and flow based charging, etc. PCRF 236 may determine how a certain service data flow shall be treated, and may ensure that user plane traffic mapping and treatment is in accordance with a user's subscription profile.

PGW 238 may include one or more traffic transfer devices (or network devices), such as a gateway, a router, a switch, a firewall, a NIC, a hub, a bridge, a proxy server, an OADM, or some other type of device that processes and/or transfers traffic. In one example implementation, PGW 238 may provide connectivity of UE 210 to external packet data networks by being a traffic exit/entry point for UE 210. UE 210 may simultaneously connect to more than one PGW for accessing multiple PDNs. PGW 238 may perform policy enforcement, packet filtering for each user, charging support, lawful intercept, and packet screening. PGW 238 may also act as an anchor for mobility between 3GPP and non-3GPP technologies.

IMS network 240 may include an architectural framework or network (e.g., a telecommunications network) for delivering IP multimedia services.

HSS 242 may include one or more computation and communication devices that gather, process, search, and/or provide information in a manner described herein. In one example implementation, HSS 242 may include a master user database that supports devices of IMS network 240 that handle calls. HSS 242 may include subscription-related information (e.g., subscriber profiles), and may provide information about a subscriber's location and IP information.

EIR 250 may include one or more computation and communication devices that gather, process, search, and/or provide information in a manner described herein. In one example implementation, EIR 250 may store a list of UEs 210 that are to be monitored or banned from EPC network 230. The information stored in EIR 250 may not change in real time, and may include information that prevents calls from stolen, unauthorized, or defective UEs 210. EIR 250 may receive information associated with attempts to access EPC network 230, and may store the information in a log file.

AAA server 260 may include one or more computation and communication devices that gather, process, search, and/or provide information in a manner described herein. In one example implementation, AAA server 260 may provide authentication, authorization, and accounting services for UE 210. With regard to authentication, AAA server 260 may verify an identifier (e.g., a mobile directory number (MDN), a mobile identification number (MIN), a mobile equipment identity (MEID), an IMEI, etc.) and credentials (e.g., passwords, tokens, digital certificates, etc.) associated with UE 210. With regard to authorization, AAA server 260 may grant or refuse privileges to UE 210 for accessing specific services. With regard to accounting, AAA server 260 may track consumption of network resources by UE 210.

Although FIG. 2 shows example devices/networks of environment 200, in other implementations, environment 200 may include fewer devices/networks, different devices/networks, differently arranged devices/networks, or additional devices/networks than depicted in FIG. 2. Alternatively, or additionally, one or more devices/networks of environment 200 may perform one or more other tasks described as being performed by one or more other devices/networks of environment 200.

FIG. 3 is a diagram of example components of a device 300 that may correspond to one or more of the devices of environment 200. In one example implementation, one or more of the devices of environment 200 may include one or more devices 300 or one or more components of device 300. As illustrated in FIG. 3, device 300 may include a bus 310, a processing unit 320, a memory 330, an input device 340, an output device 350, and a communication interface 360.

Bus 310 may permit communication among the components of device 300. Processing unit 320 may include one or more processors or microprocessors that interpret and execute instructions. In other implementations, processing unit 320 may be implemented as or include one or more ASICs, FPGAs, or the like.

Memory 330 may include a RAM or another type of dynamic storage device that stores information and instructions for execution by processing unit 320, a ROM or another type of static storage device that stores static information and instructions for the processing unit 320, and/or some other type of magnetic or optical recording medium and its corresponding drive for storing information and/or instructions.

Input device 340 may include a device that permits an operator to input information to device 300, such as a keyboard, a keypad, a mouse, a pen, a microphone, a touch screen display, one or more biometric mechanisms, and the like. Output device 350 may include a device that outputs information to the operator, such as a display, a speaker, etc.

Communication interface 360 may include any transceiver-like mechanism that enables device 300 to communicate with other devices and/or systems. For example, communication interface 360 may include mechanisms for communicating with other devices, such as other devices of environment 200.

As described herein, device 300 may perform certain operations in response to processing unit 320 executing software instructions contained in a computer-readable medium, such as memory 330. A computer-readable medium may be defined as a non-transitory memory device. A memory device may include memory space within a single physical memory device or spread across multiple physical memory devices. The software instructions may be read into memory 330 from another computer-readable medium or from another device via communication interface 360. The software instructions contained in memory 330 may cause processing unit 320 to perform processes described herein. Alternatively, or additionally, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

Although FIG. 3 shows example components of device 300, in other implementations, device 300 may include fewer components, different components, differently arranged components, or additional components than depicted in FIG. 3. Alternatively, or additionally, one or more components of device 300 may perform one or more tasks described as being performed by one or more other components of device 300.

FIG. 4 is a diagram of example interactions among components of an example portion 400 of environment 200 (FIG. 2). As shown, example environment portion 400 may include UE 210, MME 232, HSS 242, and EIR 250. UE 210, MME 232, HSS 242, and EIR 250 may include the features described above in connection with, for example, one or more of FIGS. 1-3.

As further shown in FIG. 4, HSS 242 may provide an error code 410 to MME 232 via the S6 a interface. In one example, error code 410 may be defined by a data structure 420 associated with the S6 a interface. Data structure 420 may include, for example, a table used to define error standards for the S6 a interface. In one example implementation, data structure 420 may include the information provided in Table 1.

TABLE 1 Error Standards For S6a/S13 Interfaces Code Class Diameter Code Code Description Trigger P 5423 DIAMETER_ERROR_UNKNOWN_SERVING_NODE Sent by the HSS to indicate that a Notify command has been received from a serving node which is not registered in HSS as the node currently serving the user N/A N/A N/A N/A N/A N/A N/A N/A S 2001 S13 Case - DIAMETER_SUCCESS UE is listed in the EIR as “blacklisted” P 5420 DIAMETER_ERROR_UNKNOWN_EPS_SUBSCRIPTION Sent by the HSS to with Error Diagnostic of indicate that the EPS NO_GPRS_DATA_SUBSCRIBED subscription is unknown P 5001 DIAMETER_ERROR_USER_UNKNOWN Sent by the HSS to indicate that the user identified by the User Name is unknown S 2001 DIAMETER_SUCCESS All packet oriented Policy set in HSS services barred S 2001 DIAMETER_SUCCESS Roamer access H-PLMN Policy set in HSS AP barred S 2001 DIAMETER_SUCCESS Roamer access V-PLMN Policy set in HSS AP barred N/A N/A N/A N/A N/A N/A N/A N/A P 5004 DIAMETER_ERROR_ROAMING_NOT_ALLOWED The HSS sends this result-code to indicate that the subscriber is not allowed to roam within the MME. N/A N/A N/A N/A N/A N/A N/A N/A S 2001 DIAMETER_SUCCESS Roaming Restricted Roaming restricted due to unsupported feature in ULA included by the HSS P 5421 DIAMETER_ERROR_RAT_NOT_ALLOWED Sent by the HSS to indicate the RAT type the UE is using is not allowed for the IMSI P 5420 DIAMETER_ERROR_UNKNOWN_EPS_SUBSCRIPTION Sent by the HSS to without Error Diagnostic, or with indicate that no EPS Error Diagnostic of GPRS_DATA_SUBSCRIBED subscription is associated with the IMSI P 5003 DIAMETER_AUTHORIZATION_REJECTED Sent by HSS if user could not be authorized. This error could occur if the service requested is not permitted to the user. This is triggered by HSS if user is mis- provisioned e.g. SIM provisioned instead of USIM N/A N/A N/A N/A P 5012 DIAMETER_UNABLE_TO_COMPLY Sent by HSS when the rejection reason is unspecified P 5012 DIAMETER_UNABLE_TO_COMPLY Sent by HSS when the rejection reason is unspecified P 5004 (Result DIAMETER_INVALID_AVP_VALUE Sent when HSS receives Code) an invalid AVP value P 5004 (Result DIAMETER_INVALID_AVP_VALUE Sent when HSS receives Code) an invalid AVP value P 5422 S13 Case Sent by the EIR to DIAMETER_ERROR_EQUIPMENT_UNKNOWN indicate that the mobile equipment is not listed in the EIR T 4181 DIAMETER_AUTHENTICATION_DATA_UNAVAILABLE Sent by the HSS to indicate that an unexpectedly transient failure occurs. Request can be retried again in the future Pro 3004 DIAMETER_TOO_BUSY Sent by HSS when the server is too busy and an alternative node should be attempted by source Pro 3004 DIAMETER_TOO_BUSY Sent by HSS when the server is too busy and an alternative node should be attempted by source Pro 3002 DIAMETER_UNABLE_TO_DELIVER Sent if peer node is unreachable or if message could not be delivered to the peer node. Sent by AAA if HSS is not responding N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A Pro 3001 (Result DIAMETER_COMMAND_UNSUPPORTED The Diameter Code) command sent by the MME is not supported by HSS and returns this result code Pro 3002 (Result DIAMETER_UNABLE_TO_DELIVER This is sent when a Code) Diameter Routing issue occurs. Pro 3003 (Result DIAMETER_REALM_NOT_SERVED This is sent per RFC Code) 3588 when the Diameter Realm AVP is not present, or is present with a value not configured in HSS. Pro 3004 (Result DIAMETER_TOO_BUSY HSS sends this when it's Code) under temporary overload. Pro 3005 (Result DIAMETER_LOOP_DETECTED Diameter Routing Loop Code) detected by HSS. Pro 3006 (Result DIAMETER_REDIRECT_INDICATION Not sent by HSS. Code) Pro 3007 (Result DIAMETER_APPLICATION_UNSUPPORTED HSS received a request Code) being to an application other than S6a. Pro 3008 (Result DIAMETER_INVALID_HDR_BITS Per RFC 3588, HSS Code) received a request with invalid combination of bits in the Diameter header. Pro 3009 (Result DIAMETER_INVALID_AVP_BITS Per RFC 3588, HSS Code) received a request with an AVP code with invalid combination of bits. Pro 3010 (Result DIAMETER_UNKNOWN_PEER HSS received certificate Code) (CER) from unknown peer. T 4001 (Result DIAMETER_AUTHENTICATION_REJECTED Not sent by HSS Code) T 4002 (Result DIAMETER_OUT_OF_SPACE HSS sends this when it's Code) under temporary overload. T 4003 (Result ELECTION_LOST Not sent by HSS Code) P 5001 (Result DIAMETER_AVP_UNSUPPORTED HSS received a Code) mandatory AVP code that is not supported. P 5002 (Result DIAMETER_UNKNOWN_SESSION_ID Not applicable for S6a. Code) P 5005 (Result DIAMETER_MISSING_AVP HSS didn't receive an Code) AVP code that is required. P 5006 (Result DIAMETER_RESOURCES_EXCEEDED Not sent by HSS Code) P 5007 (Result DIAMETER_CONTRADICTING_AVPS HSS received a request Code) containing AVP codes that contradict with each other. P 5008 (Result 65 HSS received an AVP Code) code that must not be present. P 5009 (Result DIAMETER_AVP_OCCURS_TOO_MANY_TIMES HSS received an AVP Code) code too many times. P 5010 (Result DIAMETER_NO_COMMON_APPLICATION HSS received a CER Code) request for an application other than S6a, Cx/Dx, Sh/Dh, SWx. P 5011 (Result DIAMETER_UNSUPPORTED_VERSION Per RFC 3588. Code) P 5012 (Result DIAMETER_UNABLE_TO_COMPLY HSS is unable to Code) generate the requested vectors due to an internal temporary error. P 5013 (Result DIAMETER_INVALID_BIT_IN_HEADER HSS received a request Code) with an invalid bit set to 1 in the header. P 5014 (Result DIAMETER_INVALID_AVP_LENGTH HSS received a request Code) with AVP code length set to an invalid value. P 5015 (Result DIAMETER_INVALID_MESSAGE_LENGTH HSS received a request Code) with message length set to an invalid value. P 5016 (Result DIAMETER_INVALID_AVP_BIT_COMBO HSS received a request Code) containing an AVP code with which is not allowed to have the given value in the AVP code flags field. P 5017 (Result DIAMETER_NO_COMMON_SECURITY Not sent by HSS as no Code) Diameter security is used. N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A

As shown in Table 1, data structure 420 may include a code class column, a Diameter code column, a code description column, a trigger column, and a variety of entries associated with the columns. The code class column may provide classes for the Diameter codes identified in the Diameter code column. The classes may include, for example, a permanent (P) class, a transient (T) class, a protocol (Pro) class, a success (S) class, an informational (I) class, and/or no class (N/A). The Diameter code column may include Diameter codes generated in accordance with the Diameter protocol. For example, Diameter code “5423” may indicate that a serving node is unknown to HSS 242.

The code description column may include a description associated with a Diameter code listed in the Diameter code column. For example, Diameter code “5001” may indicate (e.g., in the code description column) that a user (e.g., associated with UE 210) is unknown to HSS 242. The trigger column may include information describing why a particular Diameter code is generated. For example, the trigger column may state that HSS 242 sends Diameter code “5004” to indicate that a subscriber (e.g., associated with UE 210) is not allowed to roam within MME 232.

Although Table 1 shows example information that may be included in data structure 420, in other implementations, data structure 420 may include less information, different information, differently arranged information, or more information than depicted in Table 1.

In one example implementation, Table 1 may be replaced with or used in addition to the information provided in Table 2.

TABLE 2 Additional Error Standards For S6a/S13 Interfaces MME Result Code Error Retry alternate MME sends Family Diameter Code Code Description Trigger behavior HSS NAS Error 1XXX 1001 DIAMETER_MULTI_ROUND_AUTH Not sent by HSS. #17 N #17 Network Network Failure Failure 2XXX 2001 DIAMETER_SUCCESS Various Success Success Success 2002 DIAMETER_LIMITED_SUCCESS Not sent by HSS. Success Success not sure 3XXX 3001 DIAMETER_COMMAND_UNSUPPORTED Diameter #17 N #17 Network command sent Network Failure by the MME is Failure not supported by HSS and returns this RC 3002 DIAMETER_UNABLE_TO_DELIVER This is sent when #17 N #15 No a Diameter Network suitable cells Routing issue Failure in tracking occurs. area; provisionable option supported to change NAS cause 3003 DIAMETER_REALM_NOT_SERVED This is sent when #17 N #15 No the Diameter Network suitable cells Realm AVP is Failure (in in tracking not present, or is inter area; present with a PLMN provisionable value not case this option configured in is a supported to HSS. permanent change NAS error). cause No retry towards alternate HSS 3004 DIAMETER_TOO_BUSY HSS sends this #17 Y #17 Network when it's under Network Failure temporary Failure overload. 3005 DIAMETER_LOOP_DETECTED Diameter #17 N #17 Network Routing Loop Network Failure detected by HSS. Failure (loops are potential resource hogs so retry may be dangerous but it is possible) 3006 DIAMETER_REDIRECT_INDICATION Not sent by HSS. #17 N #17 Network Network Failure Failure (redirect info currently ignored) 3007 DIAMETER_APPLICATION_UNSUPPORTED HSS received a #17 N #17 Network request to an Network Failure application other Failure than S6a. 3008 DIAMETER_INVALID_HDR_BITS Per RFC 3588, #17 N #17 Network HSS received a Network Failure request with Failure invalid combination of bits in the Diameter header. 3009 DIAMETER_INVALID_AVP_BITS Per RFC 3588, #17 N #17 Network HSS received a Network Failure request with an Failure AVP with invalid combination of bits. 3010 DIAMETER_UNKNOWN_PEER HSS received #17 N #17 Network CER from Network Failure unknown peer. Failure 4XXX 4001 DIAMETER_AUTHENTICATION_REJECTED Not sent by HSS #17 N #15 No Network suitable cells Failure in tracking (4001 is area; used for provisionable password option errors, but supported to is not change NAS applicable cause to S6a). HSS provides security vectors that are used by MME to challenge UE. 4002 DIAMETER_OUT_OF_SPACE HSS sends this #17 Y #17 Network when it's under Network Failure temporary Failure overload. 4003 ELECTION_LOST Not sent by HSS #17 N #17 Network Network Failure Failure 5XXX 5001 DIAMETER_AVP_UNSUPPORTED HSS received a #17 N #8 EPS mandatory AVP Network service and that is not Failure non-EPS supported. service not allowed (don't distinguish this from the DIAMETER_ERROR_USER_UNKNOWN). 5001 DIAMETER_ERROR_USER_UNKNOWN HSS is not #8 EPS N #8 EPS provisioned with services service and the user IMSI. and non- non-EPS EPS service not services allowed; not provisionable allowed option supported to change NAS cause 5002 DIAMETER_UNKNOWN_SESSION_ID Not applicable #17 N #17 Network for S6a. Network Failure Failure 5003 DIAMETER_AUTHORIZATION_REJECTED Sent by HSS if #15 “No N #15 No user could not be suitable suitable cells authorized. This cells in in tracking error could occur tracking area; if the service area” provisionable requested is not option permitted to the supported to user. change NAS cause 5004 DIAMETER_INVALID_AVP_VALUE HSS received an #17 N #11 PLMN AVP with an Network Not allowed; invalid value. Failure provisionable option supported to change NAS cause (we don't distinguish this from DIAMETER_ERROR_ROAMING_NOT_ALLOWED) 5004 DIAMETER_ERROR_ROAMING_NOT_ALLOWED The HSS sends #14 EPS N #11 PLMN this result-code services Not allowed; to indicate that not provisionable the subscriber is allowed in option not allowed to this supported to roam within the PLMN change NAS MME. cause 5005 DIAMETER_MISSING_AVP HSS didn't #17 N #17 Network receive an AVP Network Failure that is required. Failure 5006 DIAMETER_RESOURCES_EXCEEDED Not sent by HSS #17 N #17 Network Network Failure Failure. Note this is a UE expending all its resources NOT the node. Does not really apply to S6a (this is a AAA code) 5007 DIAMETER_CONTRADICTING_AVPS HSS received a #17 N #17 Network request Network Failure containing AVPs Failure that contradict with each other. 5008 DIAMETER_AVP_NOT_ALLOWED HSS received an #17 N #17 Network AVP that must Network Failure not be present. Failure 5009 DIAMETER_AVP_OCCURS_TOO_MANY_TIMES HSS received an #17 N #17 Network AVP too many Network Failure times. Failure 5010 DIAMETER_NO_COMMON_APPLICATION HSS received a #17 N #17 Network CER request for Network Failure an application Failure other than S6a, Cx/Dx, Sh/Dh, SWx. 5011 DIAMETER_UNSUPPORTED_VERSION Per RFC 3588. #17 N #17 Network Network Failure Failure 5012 DIAMETER_UNABLE_TO_COMPLY HSS is unable to #17 N #17 Network generate the Network Failure; requested vectors Failure provisionable due to an internal option temporary error. supported to change NAS cause 5013 DIAMETER_INVALID_BIT_IN_HEADER HSS received a #17 N #17 Network request with an Network Failure invalid bit set to Failure 1 in the header. 5014 DIAMETER_INVALID_AVP_LENGTH HSS received a #17 N #17 Network request with Network Failure AVP length set Failure to an invalid value. 5015 DIAMETER_INVALID_MESSAGE_LENGTH HSS received a #17 N #17 Network request with Network Failure message length Failure set to an invalid value. 5016 DIAMETER_INVALID_AVP_BIT_COMBO HSS received a #17 N #17 Network request Network Failure containing an Failure AVP with which is not allowed to have the given value in the AVP Flags field. 5017 DIAMETER_NO_COMMON_SECURITY Not sent by HSS #17 N #17 Network as no Diameter Network Failure security is used. Failure 5420 DIAMETER_ERROR_UNKNOWN_EPS_SUBSCRIPTION The HSS sends #15 “No N #15 No without this response suitable suitable cells Error Diagnostic, or with when user IMSI cells in in tracking Error Diagnostic of is known to the tracking area; GPRS_DATA_SUBSCRIBED HSS, but the user area” provisionable has no EPS option subscription. supported to change NAS cause (we don't look at error diagnostic) 5420 DIAMETER_ERROR_UNKNOWN_EPS_SUBSCRIPTION Not in EPS 2.0 #7 “EPS N #15 No with services suitable cells Error Diagnostic of not in tracking NO_GPRS_DATA_SUBSCRIBED allowed” area; provisionable option supported to change NAS cause (we don't look at error diagnostic) 5421 DIAMETER_ERROR_RAT_NOT_ALLOWED The HSS sends #15 N #15 No this result-code suitable cells to indicate that in tracking the radio access area; technology provisionable (RATs) type option used by the UE supported to is not allowed change NAS for the IMSI. cause (we don't look at error diagnostic) None Message timeout #17 Y #17 Network Network Failure Failure

Table 2 may include a result code family column, a Diameter code column, a code description column, a trigger column, a MME error behavior column, a retry alternate HSS column, a MME sends NAS error column, and a variety of entries associated with the columns. The result code family column may provide families (e.g., 1XXX, 2XXX, etc.) for the Diameter codes identified in the Diameter code column. The Diameter code column may include Diameter codes generated in accordance with the Diameter protocol. For example, Diameter code “3002” may indicate that a Diameter routing issue has occurred.

The code description column may include a description associated with a Diameter code listed in the Diameter code column. For example, Diameter code “3005” may indicate (e.g., in the code description column) that a Diameter routing loop has been detected by HSS 242. The trigger column may include information describing why a particular Diameter code is generated. For example, the trigger column may state that HSS 242 sends Diameter code “3004” when HSS 242 is temporarily overloaded.

The MME error behavior column may include information describing MME error behavior for the Diameter codes identified in the Diameter code column. For example, MME 232 may indicate a network failure when Diameter error code “5004” is generated. The retry alternate HSS column may include an indication (e.g., Yes (Y), No (Y), etc.) of whether an alternate HSS 242 is to be retried before sending a NAS message to UE 210. The MME sends NAS error column may include information describing NAS errors sent by MME 232 for the Diameter codes identified in the Diameter code column.

Although Table 2 shows example information that may be included in data structure 420, in other implementations, data structure 420 may include less information, different information, differently arranged information, or more information than depicted in Table 2.

As further shown in FIG. 4, EIR 250 may provide an error code 430 to MME 232 via the S13 interface. In one example, error code 430 may be defined by data structure 420 associated with the S13 interface. In one example implementation, data structure 420 may include the information provided in Table 1 and/or Table 2, above.

MME 232 may provide a translated EPS mobility management (EMM) error code 440 to UE 210. In one example, MME 232 may utilize a data structure 450 to translate error code 410 or error code 430 into translated EMM error code 440. Data structure 450 may include, for example, a table used to define error standards for the interface between MME 232 and UE 210. In one example implementation, data structure 450 may include the information provided in Table 3.

TABLE 3 EMM Error Standards For MME to UE Interface NAS EMM Att. Det. TAU Serv. Code Code Desc. Tigger Rej. Req. Rej. Rej. UE Behavior 2 IMSI unknown Implicit detach due No Yes N/A N/A Depending upon the request in HSS to a failure in the from the MME, UE shall network e.g. MME/ reattach if detach type “re- HSS not in sync attach required” or consider the USIM as invalid if detach type set to “re-attach not required” 3 Illegal UE Authentication Yes Yes Yes Yes UE shall cease attempting to failed. MME is not attach to any LTE network able to validate the until it is power-cycled or the UE based on the UICC is replaced. generated keys. 5 IMEI not This code tells the N/A N/A N/A N/A N/A accepted UE that the network does not support limited service mode for Emergency calls. 6 Illegal ME EIR responds with a Yes Yes Yes Yes Device is blacklisted and success on S13 for cannot be allowed on the the device network. UE shall cease attempting to attach to any LTE network until it is power- cycled or the UICC is replaced. 7 EPS services UE should support Yes Yes Yes N/A Store the PLMN as barred for not allowed this as can be sent by EPS service access and search a network UE is for alternate PLMN. UE shall roaming in. cease attempting to attach to any LTE network until it is power-cycled or the UICC is replaced. 8 EPS services HSS sends Diameter Yes Yes Yes N/A USIM is invalid for EPS and non-EPS Error 5001 services. UE shall cease services not attempting to attach to any allowed LTE network until it is power- cycled or the UICC is removed/replaced. 7 EPS services Operator Policy set Yes Yes N/A N/A UE is not allowed to reattach not allowed in HSS until switching off or the UICC containing the USIM is removed 19 ESM Failure Operator Policy set Yes Yes N/A N/A USIM is not allowed for H- in HSS PLMN access while roaming. UE should not attempt this access until power off and/or USIM change 19 ESM Failure Operator Policy set Yes Yes N/A N/A USIM is not allowed for V- in HSS PLMN roaming access. UE should not attempt this until power off and/or USIM change 9 UE identity MME cannot derive Yes Yes Yes N/A UE shall automatically initiate cannot be the UE's identity the attach procedure with derived by the from the Integrity IMSI. Triggers a new IMSI network. check failure attach 10 Implicitly MME restart N/A N/A Yes Yes UE deletes its security context detached scenario or timer and is considered detached but expiry (e.g. Due to a must perform immediate attach radio Link Failure unless sent along with “Re- etc.) attach not required”. Triggers a new Globally Unique Temporary Identity (GUTI) attach request 11 PLMN Not HSS sends Diameter Yes Yes Yes Yes UE should store PLMN in the Allowed Error 5004. Attach or forbidden PLMN list and TAU in a PLMN attempt PLMN selection. No where the UE, by more attempts should be made subscription or due on current PLMN. Only applies to operator when the UE is on a roaming determined barring, PLMN. is not allowed to operate in the specified PLMN. Roaming scenarios. 12 Tracking area N/A N/A N/A N/A N/A not allowed 13 Roaming not N/A N/A N/A N/A N/A allowed in this tracking area 14 EPS services Roaming Yes Yes Yes N/A UE should store PLMN in the not allowed in Restrictions added in “forbidden PLMNs for GPRS this PLMN the subscriber profile service” and search for in the HSS alternative PLMN. No more attempts should be made on current PLMN. Only applies when the UE is on a roaming PLMN. 15 No suitable HSS sends Diameter Yes Yes Yes Yes UE shall not attempt further cells in Error 5421. UE attachment attempts on any cell tracking area trying to access RAT associated with the current type not allowed by Tracking Area ID until it is subscription power-cycled or the UICC is replaced or the 24 hour forbidden list timer expires. 15 No suitable HSS sends Diameter Yes Yes Yes Yes UE shall not attempt further cells in Error 5420. UE attachment attempts on any cell tracking area subscription is not associated with the current allowed to operate in Tracking Area ID until it is the Tracking Area power-cycled or the UICC is replaced or the 24 hour forbidden list timer expires. 15 No suitable HSS sends Diameter Yes Yes Yes Yes UE shall not attempt further cells in Error 5003. UE not attachment attempts on any cell tracking area authorized or mis- associated with the current provisioned in the Tracking Area ID until it is network power-cycled or the UICC is replaced or the 24 hour forbidden list timer expires. The cause code does not distinguish mis-provisioned UE vs. actual subscription denied and hence UE is unaware of the fact that the attempts will always fail 16 MSC Yes N/A Yes N/A UE could retry after a certain temporarily not period reachable 17 Network HSS sends Diameter Yes N/A Yes N/A Increment the procedure count Failure Error 5012. Database and retry. If UE receives 2 error or other failure consecutive #17 cause codes, it in HSS should abort the procedure and stop retrying until timer expires (12 minutes). N/A N/A N/A N/A N/A N/A N/A N/A 17 Network HSS sends Base Yes N/A N/A N/A Increment the procedure count Failure Diameter Error 5004. and retry. If UE receives 2 Mis-formed message consecutive #17 cause codes, it from MME or other should abort the procedure and decode failure at stop retrying until timer expires HSS (12 minutes) N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 17 Network Internal Network Yes N/A N/A N/A Increment the procedure count Failure Failure or and retry. If UE receives 2 Authentication issue consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network Internal Network Yes N/A N/A N/A Increment the procedure count Failure Failure or and retry. If UE receives 2 Authentication issue consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) N/A N/A N/A N/A N/A N/A N/A N/A 17 Network Internal Network Yes N/A N/A N/A Increment the procedure count Failure Failure or and retry. If UE receives 2 Authentication issue consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 18 CS domain not UE requests CS Yes N/A N/A Yes UE should no longer request available Domain Services. CS domain, but may request or proceed with PS domain. 19 ESM failure This EMM code Yes N/A N/A N/A UE shall look at the indicates an ESM corresponding ESM failure and failure occurred. act accordingly. If UE receives Triggered in a 3 consecutive #19 cause codes, scenario where it aborts the attach procedure Attach succeeds but and stops retrying until timer PDN connectivity expires (12 minutes). If the fails. ESM cause code in the PDN Reject is #54, UE switches to type = initial on the next retry. For all other ESM cause codes, the UE switches to the class 3 APN for the next retry. 20 MAC Failure Error from UE to N/A N/A N/A N/A N/A MME. Uplink NAS Message. 21 Synch failure Error from UE to N/A N/A N/A N/A N/A MME. Uplink NAS Message. 22 Congestion N/A N/A N/A N/A N/A 23 UE security Error from UE to N/A N/A N/A N/A N/A capabilities MME. Uplink NAS mismatch Message. 24 Security mode Error from UE to N/A N/A N/A N/A N/A rejected, MME. Uplink NAS unspecified Message. 25 Not authorized Potential scenario for Yes Yes Yes Yes Update the CSG list (delete for this CSG EPS 3.0 entry) and search for alternative cell in the same PLMN 26 Non-EPS Error from UE to N/A N/A N/A N/A N/A authentication MME. Uplink NAS unacceptable Message. 39 CS domain Extended Service N/A N/A N/A Yes Wait until timer expires before temporarily not Request failure reattempting Service Request. available If TAU is needed service can be tried immediately or for emergency calls, it can be retried 40 No EPS bearer MME restart N/A N/A Yes N/A UE deletes its security context context scenario or when the and is considered detached but activated network implicitly must perform immediate cleared the resources attach unless sent along with for a UE “Re-attach not required”. Triggers a new GUTI Attach 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 3001 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 3002 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 3003 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 3004 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 3005 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 3006 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 3007 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 3008 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 3009 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 3010 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 4001 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 4002 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 4003 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5001 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5002 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes Yes Yes N/A Increment the procedure count Failure 5005 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5006 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5007 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5008 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5009 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5010 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5011 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5012 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5013 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5014 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5015 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5016 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 17 Network HSS sends Diameter Yes N/A N/A N/A Increment the procedure count Failure 5017 and retry. If UE receives 2 consecutive #17 cause codes, it should abort the procedure and stop retrying until timer expires (12 minutes) 95 Semantically MME has a problem Yes Yes Yes Yes Increment the corresponding incorrect with NAS EMM procedure count to 5 and Start message message from UE timer (12 minutes) 96 Invalid MME has a problem Yes Yes Yes Yes Increment the corresponding mandatory with NAS EMM procedure count to 5 and Start information message from UE timer (12 minutes) 97 Message type MME has a problem Yes Yes Yes Yes Increment the corresponding non-existent or with NAS EMM procedure count to 5 and Start not message from UE timer (12 minutes) implemented 99 Information MME has a problem Yes Yes Yes Yes Increment the corresponding element non- with NAS EMM procedure count to 5 and Start existent or not message from UE timer (12 minutes) implemented 100 Conditional IE MME has a problem Yes Yes Yes Yes Increment the corresponding error with NAS EMM procedure count to 5 and Start message from UE timer (12 minutes) 101 Message not MME has a problem Yes Yes Yes Yes Increment the corresponding compatible with NAS EMM procedure count to 5 and Start with protocol message from UE timer (12 minutes) state 111 Protocol error, MME has a problem Yes Yes Yes Yes Increment the corresponding unspecified with NAS EMM procedure count to 5 and Start message from UE timer (12 minutes) N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A

In one example implementation, the rows of Table 1 may align with (e.g., map to) the rows of Table 3. As shown in Table 3, data structure 450 may include a NAS EMM code column, a code description column, a trigger column, EMM message type columns (e.g., an attach reject column, a detach request column, a tracking area update (TAU) reject column, and a service reject column), a UE behavior column, and a variety of entries associated with the columns. The NAS EMM code column may provide identifiers (e.g., numbers) for NAS EMM error codes provided from MME 232 to UE 210. The code description column may include a description associated with a NAS EMM code listed in the NAS EMM code column. For example, NAS EMM code “17” may indicate (e.g., in the code description column) a network failure. The trigger column may include information describing why a particular NAS EMM code is generated. For example, the trigger column may indicate that NAS EMM code “3” is generated when MME 232 is not able to validate UE 210 based on generated keys.

The attach reject column may provide an indication (e.g., Yes, No, or not applicable (N/A)) of whether an attach rejection is associated with a NAS EMM code identified in the NAS EMM code column. The detach request column may provide an indication (e.g., Yes, No, or N/A) of whether a detach rejection is associated with a NAS EMM code identified in the NAS EMM code column. The TAU reject column may provide an indication (e.g., Yes, No, or N/A) of whether a TAU rejection is associated with a NAS EMM code identified in the NAS EMM code column. The service reject column may provide an indication (e.g., Yes, No, or N/A) of whether a service rejection is associated with a NAS EMM code identified in the NAS EMM code column. The UE behavior column may include information describing how UE 210 is behave for each NAS EMM code of the NAS EMM code column.

Although Table 3 shows example information that may be included in data structure 450, in other implementations, data structure 450 may include less information, different information, differently arranged information, or more information than depicted in Table 3.

MME 232 may provide a translated EPS session management (ESM) error code 460 to UE 210. In one example, MME 232 may utilize a data structure 470 to translate error code 410 or error code 430 into translated ESM error code 460. Data structure 470 may include, for example, a table used to define error standards for the interface between MME 232 and UE 210. In one example implementation, data structure 470 may include the information provided in Table 4.

TABLE 4 ESM Error Standards For MME to UE Interface NAS Deact. PDN Bearer Bearer PDN ESM Code Bearer Connect Alloc. Modif. Discon. ESM Code Descr. Trigger Request Reject Reject Reject Reject Status UE Behavior N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A  8 Operator Operator N/A N/A N/A N/A N/A N/A USIM is not Determined policy allowed for Barring H-PLMN access while roaming. UE should not attempt for this access until power off and/or USIM change  8 Operator Operator N/A N/A N/A N/A N/A N/A USIM is not Determined policy allowed for Barring V-PLMN roaming access. UE should not attempt for this until power off and/or USIM change N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 38 Network Database Yes Yes N/A N/A N/A N/A Device shall failure error or other throttle any failure on further PDN HSS connection attempts using X minutes between attempts. N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 38 Network Mis-formed Yes Yes N/A N/A N/A N/A Device shall failure message from throttle any MME or further PDN other decode connection failure at attempts using HSS X minutes between attempts. N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 26 Insufficient Resource N/A Yes Yes Yes N/A N/A Device shall resources issues at throttle any PGW or a further PDN failure connection received with attempts using resource X minutes shortage from between peer attempts. N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A After 3 consecutive attempts to the network with the same failure code increase attach counter to 5 and stop retrying until timer expires (12 minutes). If the ESM cause code in the PDN Reject is #54, UE switches to type = initial on the next retry. For all other ESM cause codes, the UE switches to the class 3 access point name (APN) for the next retry. N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 33 Requested No APN N/A Yes Yes Yes N/A N/A Upon second service Configuration consecutive option not AVP present ESM 33, UE subscribed shall not attempt any further PDN connection requests using this APN while in the given PLMN until UE power cycle 27 Missing or DNS query N/A Yes Yes Yes N/A N/A Upon second unknown (from MME) consecutive APN fails ESM 27, UE shall not attempt any further PDN connection requests using this APN while in the given PLMN until UE power cycle

In one example implementation, the rows of Table 4 may align with (e.g., map to) the rows of Tables 1 and/or 3. As shown in Table 4, data structure 470 may include a NAS ESM column, a code description column, a trigger column, ESM message type columns (e.g., a deactivate bearer request column, a PDN connectivity rejection column, a bearer resource allocation rejection column, a bearer resource modification rejection column, a PDN disconnect rejection column, and an ESM status column), a UE behavior column, and a variety of entries associated with the columns. The NAS ESM code column may provide identifiers (e.g., numbers) for NAS ESM error codes provided from MME 232 to UE 210. The code description column may include a description associated with a NAS ESM code listed in the NAS ESM code column. For example, NAS ESM code “33” may indicate (e.g., in the code description column) that requested service option is not subscribed to by UE 210. The trigger column may include information describing why a particular NAS ESM code is generated. For example, the trigger column may indicate that NAS ESM code “38” is generated when a database error or other failure occurs in HSS 242.

The deactivate bearer request column may provide an indication (e.g., Yes, No, or N/A) of whether a deactivate EPS bearer content request is associated with a NAS ESM code identified in the NAS ESM code column. The PDN connectivity rejection column may provide an indication (e.g., Yes, No, or N/A) of whether a PDN connectivity rejection is associated with a NAS ESM code identified in the NAS ESM code column. The bearer resource allocation rejection column may provide an indication (e.g., Yes, No, or N/A) of whether a bearer resource allocation rejection is associated with a NAS ESM code identified in the NAS ESM code column. The bearer resource modification rejection column may provide an indication (e.g., Yes, No, or N/A) of whether a bearer resource modification rejection is associated with a NAS ESM code identified in the NAS ESM code column. The PDN disconnect rejection column may provide an indication (e.g., Yes, No, or N/A) of whether a PDN disconnect rejection is associated with a NAS ESM code identified in the NAS ESM code column. The ESM status column may provide an indication (e.g., Yes, No, N/A) of whether an ESM status is associated with a NAS ESM code identified in the NAS ESM code column. The UE behavior column may include information describing how UE 210 is behave for each NAS ESM code of the NAS ESM code column.

Although Table 4 shows example information that may be included in data structure 470, in other implementations, data structure 470 may include less information, different information, differently arranged information, or more information than depicted in Table 4.

Although FIG. 4 shows example components of environment portion 400, in other implementations, environment portion 400 may include fewer components, different components, differently arranged components, or additional components than depicted in FIG. 4. Alternatively, or additionally, one or more components of environment portion 400 may perform one or more other tasks described as being performed by one or more other components of environment portion 400.

FIG. 5 is a diagram of example interactions among components of another example portion 500 of environment portion 200 (FIG. 2). As shown, example environment portion 500 may include UE 210, MME 232, SGW 234, and PGW 238. UE 210, MME 232, SGW 234, and PGW 238 may include the features described above in connection with, for example, one or more of FIGS. 1-4.

As further shown in FIG. 5, PGW 238 may provide an error code 510 to SGW 234 via the S5 interface. In one example, error code 510 may be defined by a data structure 520 associated with the S5 interface. SGW 234 may provide an error code 530 to MME 232 via the S11 interface. In one example, error code 530 may be defined by data structure 520 associated with the S11 interface. Data structure 520 may include a table used to define error standards for the S5 and S11 interfaces. In one example implementation, data structure 520 may include the information provided in Table 5.

TABLE 5 Error Standards For S5/S11 Interfaces Code GTP Type Code Code Description Trigger T 73 No resources available System is booting up and is not yet ready process any request. Due to system limitation, like memory shortage, incoming GTP request cannot be processed and will be rejected due to: (1) new call policy; (2) license limit exceeded; (3) congestion control policy; etc. Modify bearer command may fail and bearer resource command may be rejected. eHRPD-to-LTE handoff may be rejected, and a create session may be rejected due to some local failure. P 64 Context Not Found (in Used in response message, when the UE context corresponding PGW) to the received message is not found at PGW. Applicable to responses of Modify Bearer Req, Delete Session, Bearer Resource Cmd, Modify Bearer Cmd etc. P 64 Context Not Found (in Used in response message, when the UE context corresponding SGW) to the received message is not found at SGW. Applicable to responses of Modify Bearer Req, Delete Session, Bearer Resource Cmd, Modify Bearer Cmd etc. P 65 Invalid Message Format Used in response message when there is parsing error in the received message. Modify bearer command received with invalid QCI in Bearer-QOS. P 66 Version not supported by GTP message received with a GTP version that is not next peer supported. P 67 Invalid length Parse Error or badly formed msg. P 68 Service not supported Not sent by PGW P 69 Mandatory IE incorrect Mandatory IE received with incorrect value in it. P 70 Mandatory IE missing Mandatory IE missing in the received GTP message N/A 71 Reserved Not sent by PGW P 72 System failure Not sent by PGW P 74 Semantic error in the TFT Not sent by PGW operation T 75 Syntactic error in the TFT Not sent by PGW operation T 76 Semantic errors in packet Semantic error in Traffic Aggregate Description received in filter(s) Bearer Resource Command T 77 Syntactic errors in packet Not sent by PGW filter(s) P 78 Missing or unknown APN Invalid APN received in the request in Create Session Request T 79 Unexpected repeated IE P 80 GRE key not found Not sent by PGW P 81 Relocation failure Not sent by PGW P 82 Denied in radio access Not sent by PGW technology (RAT) P 83 Preferred PDN type not Unsupported PDN type for the requested APN supported T 84 All dynamic addresses are Temporary resource issue and unable to assign IP address to occupied UE during Create Session Request T 85 UE context without traffic Not sent by PGW flow template (TFT) already activated P 86 Protocol type not Not sent by PGW supported T 87 UE not responding Not sent by PGW T 88 UE refuses Not sent by PGW T 89 Service denied Used in case of Bearer Resource Command if there is failure from PCRF or a reject message T 90 Unable to page UE Not sent by PGW T 91 No memory available Not sent by PGW P 92 User authentication failed AAA authentication for the Subscriber failed, invalid returned APN on Radius, reauthentication with Radius returned APN failed, S6b authentication failure, etc. P 93 APN access denied - no Static Address not allowed, APN selection mode mismatch, subscription APN restriction violation, etc. T 94 Request rejected If GTP reques validation fails, a response is sent with this cause. If PGW receives a delete bearer command with non-existent set of EBIs, PGW will send delete bearer failure indication message with “Bearer Context” corresponding to the EBIs that do not exist with PGW, with message level cause as “Request Rejected”, and bearer level cause as “Context Not Found” T 95 P-TMSI Signature Not sent by PGW mismatch P 96 IMSI not known Not sent by PGW T 97 Semantic error in the TAD Some Filter-Ids in Traffic Aggregate Description (TAD) to operation remove list doesn't exist T 98 Syntactic error in the TAD Not sent by PGW operation P 99 Reserved Message Value Not sent by PGW Received T 100 Remote peer not Not sent by PGW responding Sent by SGW T 101 Collision with network Not sent by PGW initiated request T 102 Unable to page UE due to Not sent by PGW Suspension N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A

As shown in Table 5, data structure 520 may include a code type column, a general packet radio service (GPRS) tunneling protocol (GTP) code column, a code description column, a trigger column, and a variety of entries associated with the columns. The code type column may provide classes for the GTP codes identified in the GTP code column. The types may include, for example, a permanent (P) type, a transient (T) type, a protocol (Pro) type, a success (S) type, an informational (I) type, and/or no type (N/A). The GTP code column may include GTP codes generated in accordance with the GPRS tunneling protocol. For example, GTP code “69” may indicate that a mandatory information element (IE) is received with an incorrect value.

The code description column may include a description associated with a GTP code listed in the GTP code column. For example, GTP code “83” may indicate (e.g., in the code description column) that a preferred PDN type is not supported. The trigger column may include information describing why a particular GTP code is generated. For example, GTP code “84” may indicate (e.g., in the trigger column) that a temporary resource issue has occurred and an IP address cannot be assigned to UE 210.

Although Table 5 shows example information that may be included in data structure 520, in other implementations, data structure 520 may include less information, different information, differently arranged information, or more information than depicted in Table 5.

MME 232 may provide a translated ESM error code 540 to UE 210. In one example, MME 232 may utilize a data structure 550 to translate error code 510 or error code 530 into translated ESM error code 540. Data structure 550 may include, for example, a table used to define error standards for the interface between MME 232 and UE 210. In one example implementation, data structure 550 may include the information provided in Table 6.

TABLE 6 ESM Error Standards For MME to UE Interface NAS Deact. PDN Bearer Bearer PDN ESM Bearer Connect Alloc. Modif. Discon. ESM Code Code Descr. Trigger Request Reject Reject Reject Reject Status UE Behavior 26 Insufficient Resource N/A Yes Yes Yes N/A N/A UE shall resources issues at throttle any PGW or a further PDN failure connection received with attempts resource using shortage from minutes peer between attempts. 30 Request PGW N/A Yes Yes Yes N/A N/A UE shall rejected by message throttle any SGW or further PDN PGW connection attempts using minutes between attempts. UE shall not initiate quality of service (QoS) and UE initiated QoS messages shall be rejected by MME. 30 Request SGW N/A Yes Yes Yes N/A N/A UE shall rejected by message throttle any SGW or further PDN PGW connection attempts using minutes between attempts. UE shall not initiate quality of service (QoS) and UE initiated QoS messages shall be rejected by MME. 30 Request Invalid QCI N/A Yes Yes Yes N/A N/A UE shall rejected by in bearer- throttle any SGW or QoS, parsing further PDN PGW error. Could connection be originated attempts in QoS info., using PCRF minutes malforming between the message, attempts. UE invalid shall not provisioning initiate or other quality of network service (QoS) element and UE malforming initiated QoS other messages parameters shall be rejected by MME. 30 Request Unsupported N/A Yes Yes Yes N/A N/A UE shall rejected by protocol throttle any SGW or further PDN PGW connection attempts using minutes between attempts. UE shall not initiate quality of service (QoS) and UE initiated QoS messages shall be rejected by MME. 30 Request Unsupported N/A Yes Yes Yes N/A N/A UE shall rejected by protocol throttle any SGW or further PDN PGW connection attempts using minutes between attempts. UE shall not initiate quality of service (QoS) and UE initiated QoS messages shall be rejected by MME. 32 Service UE requests N/A Yes N/A N/A N/A N/A UE should option not for an attempt with supported/ unsupported a different Network PDN type for PDN type in Failure the requested the PDN APN. connectivity Potentially a request and if misconfig. none else supported, attempt a different PLMN 30 Request Invalid N/A Yes Yes Yes N/A N/A UE shall rejected by message throttle any SGW or contents further PDN PGW connection attempts using minutes between attempts. UE shall not initiate quality of service (QoS) and UE initiated QoS messages shall be rejected by MME. 30 Request Unsupported N/A Yes Yes Yes N/A N/A UE shall rejected by protocol throttle any SGW or further PDN PGW connection attempts using minutes between attempts. UE shall not initiate quality of service (QoS) and UE initiated QoS messages shall be rejected by MME. N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 44 Semantic N/A N/A N/A N/A N/A N/A N/A N/A errors in packet filter(s) 45 Syntactical N/A N/A N/A N/A N/A N/A N/A N/A error in packet filter(s) 27 Missing or APN not N/A Yes N/A N/A N/A N/A IF UE unknown configured in Receives two APN the PGW consecutive ESM 27 messages, UE shall not attempt any further PDN connection requests using this APN while in the given PLMN until UE power cycle N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 30 Request N/A N/A N/A N/A N/A N/A N/A N/A rejected by SGW or PGW N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 32 Service UE requests N/A Yes N/A N/A N/A N/A IF UE option not for an Receives two supported/ unsupported consecutive Network PDN type for ESM 27 Failure the requested messages, APN. UE shall not Potentially a attempt any misconfig. further PDN connection requests using this APN while in the given PLMN until UE power cycle 26 Insufficient Shortage of N/A Yes Yes Yes N/A N/A UE shall resources IP addresses throttle any to be further PDN allocated in connection the system attempts due to using temporary minutes issue between attempts. N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 30 Request N/A N/A N/A N/A N/A N/A N/A N/A rejected by SGW or PGW N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 30 Request Failure N/A Yes Yes Yes N/A N/A UE shall rejected by scenario in throttle any SGW or the network further PDN PGW or subscriber connection does not have attempts access to using requested minutes service due to between network attempts. UE policy shall not initiate QoS and UE initiated QoS messages shall be rejected by MME. N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 26 Insufficient N/A N/A N/A N/A N/A N/A N/A N/A Resources 29 User User N/A Yes N/A N/A N/A N/A IF UE authent. authentication Receives two failed failed at AAA consecutive or during re- ESM 29 auth messages, UE shall not attempt any further PDN connection requests using this APN while in the given PLMN until UE power cycle 33 Requested UE request in Yes Yes N/A N/A N/A N/A IF UE service violation of Receives two option not the current consecutive subscribed restrictions ESM 33 on the active messages, EPS bearer UE shall not context attempt any further PDN connection requests using this APN while in the given PLMN until UE power cycle 30 Request N/A N/A Yes Yes Yes N/A N/A UE shall rejected by throttle any SGW or further PDN PGW connection attempts using minutes between attempts. UE shall not initiate QoS and UE initiated QoS messages shall be rejected by MME. N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 41 Semantic N/A N/A N/A N/A N/A N/A N/A N/A error in the TFT operation 42 Syntactical N/A N/A N/A N/A N/A N/A N/A N/A error in the TFT operation N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 38 Request S5 link down N/A Yes Yes Yes N/A N/A UE shall rejected by or PGW not throttle any SGW or responding. further PDN PGW Sent only connection after retry by attempts MME. using minutes between attempts. 56 Collision N/A N/A N/A N/A N/A N/A N/A N/A with network initiated request N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A 27 Missing or MME detects N/A Yes N/A N/A N/A N/A IF UE unknown an invalid Receives two APN APN or consecutive unauthorized ESM 27 APN for the messages, subscriber UE shall not during PDN attempt any connectivity. further PDN connection requests using this APN while in the given PLMN until UE power cycle 28 Unknown MME detects N/A Yes N/A N/A N/A N/A UE should PDN type that UE is switch to requesting PDN invalid or type = IPv4v6 unknown for all retries. PDN based on subscription profile 31 Request UE is N/A Yes Yes Yes N/A N/A UE shall rejected, attempting throttle any unspecified bearer further PDN modification connection or an attempts additional using PDN minutes connection between while attempts. attached for Emergency Bearer Service 33 Requested UE requested N/A Yes Yes Yes N/A N/A IF UE service service type receives two option not is not consecutive subscribed authorized or ESM 33 subscribed to messages, UE shall not attempt any further PDN connection requests using this APN while in the given PLMN until UE power cycle 35 PTI already Procedure N/A Yes Yes Yes N/A N/A UE should in use Transaction abort the ID is invalid current as attempted procedure by the UE and clear the PTI and enter Procedure Transaction Inactive state. UE may reattempt the procedure with a different PTI. 36 Regular Network Yes N/A N/A N/A N/A N/A UE shall deactivate triggered release the deactivation EPS bearer either due to contexts UE request or requested and an abnormal may attempt condition in to reconnect the network to the PDN, or operator if needed triggered deactivation due to maintenance 37 EPS QoS EPS QoS N/A N/A Yes Yes N/A N/A UE should not accepted requested by not attempt UE is not any bearer supported or allocation or authorized. modification Scenario is with the QoS not applicable parameters to Verizon network as any UE requested QoS is rejected today by default 39 Reactivate Yes N/A N/A N/A N/A N/A UE should requested reactivate the EPS bearer context, if it was a default EPS bearer context. 41 Semantic N/A N/A N/A N/A N/A N/A N/A N/A error in the TFT operation 43 Invalid EPS UE uses an N/A N/A Yes Yes Yes Yes UE shall bearer invalid EPS deactivate the identity bearer ID existing which may default EPS have been bearer deleted by context Network due locally to an internal without peer- failure or to-peer other signaling mismatch between the UE and the MME 45 Syntactical N/A N/A N/A N/A N/A N/A N/A N/A error in packet filter(s) 46 EPS bearer Triggered by N/A N/A N/A N/A N/A N/A N/A context UE towards without TFT MME already activated 47 PTI Triggered by N/A N/A N/A N/A N/A N/A N/A mismatch UE towards MME 49 Last PDN UE tries to N/A N/A N/A N/A Yes N/A UE shall stop disconnect deactivate the the timer, not allowed last PDN enter the connection procedure transaction inactive state and abort the PDN disconnection procedure 50 PDN type If requested N/A Yes N/A N/A N/A N/A UE should IPv4 only APN is switch to allowed configured PDN for IPv4 type = IPv4 operation for the next only and UE retry. requests IPv6 or IPv4v6 51 PDN type If requested N/A Yes N/A N/A N/A N/A UE should IPv6 only APN is switch to allowed configured PDN for IPv6 type = IPv6 operation for the next only and UE retry. requests IPv4 or IPv4v6 52 single UE requests N/A Yes N/A N/A N/A N/A UE activates address PDN type default bearer bearers only IPv4v6, but context allowed the network request. UE uses single that has been addressing allocated an per bearer IPv4 address for this APN and received the ESM 52 message, and is requesting an IPv6 address, shall set the PDN type IE to IPv6. If UE has been allocated an IPv6 address for this APN and received the ESM 52 message, and is requesting an IPv4 address, UE shall set the PDN type IE to IPv4. UE may request a new PDN connection with IPv4 or IPv6 only request 53 ESM ESM N/A Yes N/A N/A N/A N/A UE can information information reattempt the not received transfer flag PDN in the PDN connectivity connectivity procedure request has been set and the ESM information is not received 54 PDN UE sends N/A Yes N/A N/A N/A N/A UE shall connection PDN locally does not connectivity release the exist request with a connection to default APN the PDN and or a specific reattach to APN with the PDN request type set to “handover” and the MME does not have any information about that PDN connection 55 Multiple UE attempts N/A Yes N/A N/A N/A N/A UE shall PDN multiple PDN abort the connects for connections addition of a given APN to an APN the second not allowed that is not PDN configured/ connection allowed for request and multiple PDN shall attempt connections the procedure only after the other PDN connection to the APN is terminated 56 Collision UE initiates a N/A N/A Yes Yes N/A N/A UE shall with procedure abort the network while MME procedure initiated initiated until the request procedure is network active initiated procedure completes 59 Unsupport N/A N/A N/A N/A N/A N/A N/A N/A value 81 Invalid PTI UE requested N/A Yes Yes Yes N/A Yes UE should value service uses abort the an unassigned current or reserved procedure Procedure and clear the Transaction PTI and enter ID Procedure Transaction Inactive state. UE may reattempt the procedure with a different PTI. 95 Semantic MME has a Yes Yes Yes Yes Yes N/A UE shall incorrect problem with throttle any message NAS ESM further PDN message from connection UE attempts using minutes between attempts. 97 Message UE Initiated N/A N/A N/A N/A N/A Yes UE shall type non- Modification throttle any existent procedures further PDN connection attempts using minutes between attempts. 98 Message MME has a Yes Yes Yes Yes Yes N/A UE shall type not problem with throttle any compatible NAS ESM further PDN with message from connection protocol UE attempts state using minutes between attempts. 99 Information MME has a Yes Yes Yes Yes Yes N/A UE shall element problem with throttle any non-existent NAS ESM further PDN or not message from connection implemented UE attempts using minutes between attempts. 100  Conditional MME has a Yes Yes Yes Yes Yes N/A UE shall IE error problem with throttle any NAS ESM further PDN message from connection UE attempts using minutes between attempts. 101  Message not MME has a Yes Yes Yes Yes Yes N/A UE shall compatible problem with throttle any with NAS ESM further PDN protocol message from connection state UE attempts using minutes between attempts.

In one example implementation, the rows of Table 6 may align with (e.g., map to) the rows of Table 5. As shown in Table 6, data structure 550 may include a NAS ESM code column, a code description column, a trigger column, ESM message type columns (e.g., a deactivate bearer request column, a PDN connectivity rejection column, a bearer resource allocation rejection column, a bearer resource modification rejection column, a PDN disconnect rejection column, and an ESM status column), a UE behavior column, and a variety of entries associated with the columns. The NAS ESM code column may provide identifiers (e.g., numbers) for NAS ESM error codes provided from MME 232 to UE 210. The code description column may include a description associated with a NAS ESM code listed in the NAS ESM code column. For example, NAS ESM code “26” may indicate (e.g., in the code description column) that there are insufficient resources for UE 210. The trigger column may include information describing why a particular NAS ESM code is generated. For example, the trigger column may indicate that NAS ESM code “44” is generated when there semantic errors in packet filter(s).

The deactivate bearer request column may provide an indication (e.g., Yes, No, or N/A) of whether a deactivate EPS bearer content request is associated with a NAS ESM code identified in the NAS ESM code column. The PDN connectivity rejection column may provide an indication (e.g., Yes, No, or N/A) of whether a PDN connectivity rejection is associated with a NAS ESM code identified in the NAS ESM code column. The bearer resource allocation rejection column may provide an indication (e.g., Yes, No, or N/A) of whether a bearer resource allocation rejection is associated with a NAS ESM code identified in the NAS ESM code column. The bearer resource modification rejection column may provide an indication (e.g., Yes, No, or N/A) of whether a bearer resource modification rejection is associated with a NAS ESM code identified in the NAS ESM code column. The PDN disconnect rejection column may provide an indication (e.g., Yes, No, or N/A) of whether a PDN disconnect rejection is associated with a NAS ESM code identified in the NAS ESM code column. The ESM status column may provide an indication (e.g., Yes, No, N/A) of whether an ESM status is associated with a NAS ESM code identified in the NAS ESM code column. The UE behavior column may include information describing how UE 210 is behave for each NAS ESM code of the NAS ESM code column.

Although Table 6 shows example information that may be included in data structure 550, in other implementations, data structure 550 may include less information, different information, differently arranged information, or more information than depicted in Table 6.

Although FIG. 5 shows example components of environment portion 500, in other implementations, environment portion 500 may include fewer components, different components, differently arranged components, or additional components than depicted in FIG. 5. Alternatively, or additionally, one or more components of environment portion 500 may perform one or more other tasks described as being performed by one or more other components of environment portion 500.

FIG. 6 is a diagram of example interactions among components of still another example portion 600 of environment portion 200 (FIG. 2). As shown, example environment portion 600 may include PGW 238 and AAA server 260. PGW 238 and AAA server 260 may include the features described above in connection with, for example, one or more of FIGS. 1-5.

As further shown in FIG. 6, AAA server 260 may provide an error code 610 to PGW 238 via the S6 b interface. In one example, error code 610 may be defined by a data structure 620 associated with the S6 b interface. Data structure 620 may include a table used to define error standards for the S6 b interface. In one example implementation, data structure 620 may include the information provided in Table 7.

TABLE 7 Error Standards For S6b Interface Result PGW PGW Code Diameter Error Retry Family Code Code Description Trigger Behavior Behavior 1XXX 1001 DIAMETER_MULTI_ROUND_AUTH The received Not an authent. message Error from PGW requires additional requests. 2XXX 2001 DIAMETER_SUCCESS As per RFC Not an Error 2002 DIAMETER_LIMITED_SUCCESS Not sent Not an Error 3XXX 3001 DIAMETER_COMMAND_UNSUPPORTED The Diameter Terminate No retry command sent by the PGW is not supported by the AAA and returns this message 3002 DIAMETER_UNABLE_TO_DELIVER AAA cannot Retry- Primary - deliver the and- no retry answer to the Terminate Secondary PGW for timeout Peer - reasons Once 3003 DIAMETER_REALM_NOT_SERVED Missing host Terminate No retry within the realm supporting the required application or missing destination realm AVP 3004 DIAMETER_TOO_BUSY As per HSS SWG Retry- Primary - response, the and- no retry AAA forwards Terminate Secondary this error code. Peer - Once 3005 DIAMETER_LOOP_DETECTED An agent Retry- Primary - detected a loop and- no retry while trying to Terminate Secondary get the message Peer - to the intended Once recipient 3006 DIAMETER_REDIRECT_INDICATION AAA is not Retry- Primary - serving the user. and- no retry Therefore, AAA Terminate Secondary tells the PGW to Peer - send the request Once to a different peer. 3007 DIAMETER_APPLICATION_UNSUPPORTED Application ID Terminate No retry sent by PGW is not supported 3008 DIAMETER_INVALID_HDR_BITS Diameter header Terminate No retry combination error in the request 3009 DIAMETER_INVALID_AVP_BITS As per RFC Terminate No retry 3010 DIAMETER_UNKNOWN_PEER Use case for CER Retry- Primary - request from and- no retry unknown peer. Terminate Secondary Peer - Once 4XXX 4001 DIAMETER_AUTHENTICATION_REJECTED The user is not Related to authorized STa 4002 DIAMETER_OUT_OF_SPACE AAA internal Retry- Primary - temporary errors and- no retry Terminate Secondary Peer - Once 4003 ELECTION_LOST 5XXX 5001 DIAMETER_AVP_UNSUPPORTED Terminate No retry 5001 DIAMETER_ERROR_USER_UNKNOWN Experimental Terminate No retry result. There is no associated provisioned subscriber profile for this user 5002 DIAMETER_UNKNOWN_SESSION_ID The requested Terminate No retry session ID could not be found in the AAA. 5003 DIAMETER_AUTHORIZATION_REJECTED The selected Terminate No retry service is not authorized. Typically when PGW asks for a specific service that is not authorized by the policy/HSS. 5004 DIAMETER_INVALID_AVP_VALUE The request Terminate No retry contained an AVP with a not allowed value, based on the S6b reference points AVP definitions. 5005 DIAMETER_MISSING_AVP A mandatory Terminate No retry parameter was missing from the PGW request 5006 DIAMETER_RESOURCES_EXCEEDED The system Terminate No retry resources are exceeded and the request will not be processed. 5007 DIAMETER_CONTRADICTING_AVPS Detected AVPs Terminate No retry in the request that contradicted each other 5008 DIAMETER_AVP_NOT_ALLOWED An AVP was Terminate No retry included and must not be present 5009 DIAMETER_AVP_OCCURS_TOO_MANY_TIMES An AVP Terminate No retry appeared more often than permitted in the message definition. 5010 DIAMETER_NO_COMMON_APPLICATION Use case for Terminate No retry CER. No app ready to support the request 5011 DIAMETER_UNSUPPORTED_VERSION Diameter version Terminate No retry incorrect 5012 DIAMETER_UNABLE_TO_COMPLY General error in Terminate No retry AAA that does not let the Diameter transaction happen. 5013 DIAMETER_INVALID_BIT_IN_HEADER Unrecognized Bit Terminate No retry in Header 5014 DIAMETER_INVALID_AVP_LENGTH As per RFC Terminate No retry 5015 DIAMETER_INVALID_MESSAGE_LENGTH As per RFC Terminate No retry 5016 DIAMETER_INVALID_AVP_BIT_COMBO Inconsistency Terminate No retry with the AVP flag for a given AVP 5017 DIAMETER_NO_COMMON_SECURITY Use case for CER Terminate No retry when no common security is supported.

As shown in Table 7, data structure 620 may include a result code family column, a Diameter code column, a code description column, a trigger column, a PGW error behavior column, a PGW retry behavior column, and a variety of entries associated with the columns. The result code family column may provide families (e.g., 1XXX, 2XXX, etc.) for the Diameter codes identified in the Diameter code column. The Diameter code column may include Diameter codes generated in accordance with the Diameter protocol. For example, Diameter code “5002” may indicate that a requested session identifier could not be found in AAA 260.

The code description column may include a description associated with a Diameter code listed in the Diameter code column. For example, Diameter code “5011” may indicate (e.g., in the code description column) that an incorrect Diameter version is being used. The trigger column may include information describing why a particular Diameter code is generated. For example, the trigger column may state that AAA 260 sends Diameter code “5006” when resources associated with AAA 260 are exceeded and a request will not be processed.

The PGW error behavior column may include information describing PGW 238 error behavior for the Diameter codes identified in the Diameter code column. For example, MME 232 may terminate a request when Diameter error code “5004” is generated. The PGW retry behavior column may include an indication (e.g., Retry or No Retry) of whether PGW 238 will retry a request.

Although Table 7 shows example information that may be included in data structure 620, in other implementations, data structure 620 may include less information, different information, differently arranged information, or more information than depicted in Table 7.

Although FIG. 6 shows example components of environment portion 600, in other implementations, environment portion 600 may include fewer components, different components, differently arranged components, or additional components than depicted in FIG. 6. Alternatively, or additionally, one or more components of environment portion 600 may perform one or more other tasks described as being performed by one or more other components of environment portion 600.

FIGS. 7 and 8 are flow charts of an example process 700 for mapping error codes in an EPC network according to an implementation described herein. In one implementation, process 700 may be performed by a network node of EPC network 230. Alternatively, or additionally, some or all of process 700 may be performed by another device or group of devices, including or excluding a network node of EPC network 230.

As shown in FIG. 7, process 700 may include receiving an error code, destined for a UE, from an EPC node device (block 710), and comparing the error code to a data structure that maps error codes to formats understood by the UE (block 720). For example, in an implementation described above in connection with FIG. 4, HSS 242 may provide error code 410 to MME 232 via the S6 a interface. MME 232 may receive error code 410, and may compare error code to data structure 420. Data structure 450 may include, for example, a table used to define error standards for the interface between MME 232 and UE 210.

As further shown in FIG. 7, process 700 may include translating the error code into a translated error code based on the comparison (block 730), and providing the translated error code to the UE (block 740). For example, in an implementation described above in connection with FIG. 4, MME 232 may provide translated EMM error code 440 to UE 210. In one example, MME 232 may utilize data structure 450 to translate error code 410 or error code 430 into translated EMM error code 440. Translated EMM error code 440 may be in a format that is understood by UE 210.

Process block 730 may include the process blocks depicted in FIG. 8. As shown in FIG. 8, process block 730 may include translating the error code into the translated error code based on an error code type (block 800), translating the error code into the translated error code based on an error code description (block 810), translating the error code into the translated error code based on an error code trigger (block 820), translating the error code into the translated error code based on an error code message type (block 830), and translating the error code into the translated error code based on error code desired UE behavior (block 840). For example, in an implementation described above in connection with FIG. 4, data structure 450 may include a NAS EMM column, a code description column, a trigger column, EMM message type columns (e.g., an attach reject column, a detach request column, a TAU reject column, and a service reject column), a UE behavior column, and a variety of entries associated with the columns. The NAS EMM code column may provide identifiers (e.g., numbers) for NAS EMM error codes provided from MME 232 to UE 210. The code description column may include a description associated with a NAS EMM code listed in the NAS EMM code column. The trigger column may include information describing why a particular NAS EMM code is generated.

The attach reject column may provide an indication of whether an attach rejection is associated with a NAS EMM code identified in the NAS EMM code column. The detach request column may provide an indication of whether a detach rejection is associated with a NAS EMM code identified in the NAS EMM code column. The TAU reject column may provide an indication of whether a TAU rejection is associated with a NAS EMM code identified in the NAS EMM code column. The service reject column may provide an indication of whether a service rejection is associated with a NAS EMM code identified in the NAS EMM code column. The UE behavior column may include information describing how UE 210 is behave for each NAS ESM code of the NAS EMM code column.

Systems and/or methods described herein may provide mechanisms to prevent failures in an EPC network. In one example, the systems and/or methods may provide mechanisms (e.g., data structures) that enable network nodes of the EPC network to translate or map error codes into a format that is understandable by a MME of the EPC network and/or by UEs connected to the MME.

The foregoing description of implementations provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the implementations.

For example, while series of blocks have been described with regard to FIGS. 7 and 8, the blocks and/or the order of the blocks may be modified in other implementations. Further, non-dependent blocks may be performed in parallel.

It will be apparent that different aspects of the description provided above may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement these aspects is not limiting of the invention. Thus, the operation and behavior of these aspects were described without reference to the specific software code—it being understood that software and control hardware can be designed to implement these aspects based on the description herein.

Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of the invention. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one other claim, the disclosure of the invention includes each dependent claim in combination with every other claim in the claim set.

No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items and may be used interchangeably with one or more. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise. 

What is claimed is:
 1. A method, comprising: receiving, by a first node device associated with an evolved packet core network, an error code from a second node device associated with the evolved packet core network, the error code being destined for a user equipment; comparing, by the first node device, the error code to information included in a data structure that maps a plurality of error codes to a plurality of translated error codes understood by the user equipment; translating, by the first node device, the error code into a translated error code based on comparing the error code to the information included in the data structure, the translated error code being in a format that is understood by the user equipment, translating the error code including: translating the error code into the translated error code based on: an error code type provided in the data structure, an error code trigger provided in the data structure, and a desired behavior of the user equipment as defined in the data structure; and providing, by the first node device, the translated error code to the user equipment or to a third node device associated with the evolved packet core network.
 2. The method of claim 1, where providing the translated error code includes: providing the translated error code to the third node device to cause the third node device to forward the translated error code to the user equipment.
 3. The method of claim 1, where the data structure defines standards for translating error codes at an interface connecting the first node device and the second node device.
 4. The method of claim 1, where translating the error code into the translated error code further comprises: translating the error code into the translated error code further based on: an error code description provided in the data structure, and an error code message type provided in the data structure.
 5. The method of claim 1, where the error code is associated with an outage in the evolved packet core network.
 6. The method of claim 1, where the first node device includes one of: a mobility management entity (MME), a serving gateway (SGW), or a packet data network (PDN) gateway (PGW).
 7. The method of claim 6, where the second node device includes one of: a serving gateway (SGW), a packet data network (PDN) gateway (PGW), a home subscriber server (HSS), an equipment identity register (EIR), or an authentication, authorization, and accounting (AAA) server.
 8. A first node device associated with an evolved packet core network, the first node device comprising: a processor to: receive an error code from a second node device associated with the evolved packet core network, the error code being destined for a user equipment, compare the error code to information included in a data structure that maps a plurality of error codes to a plurality of translated error codes in a format that is understood by the user equipment, the data structure including: an error code trigger, an error code message type, and information identifying a desired behavior of the user equipment, translate the error code into a translated error code based on comparing the error code to the information included in the data structure, the translated error code being in the format that is understood by the user equipment, and provide the translated error code to the user equipment or to a third node device associated with the evolved packet core network.
 9. The first node device of claim 8, where, when providing the translated error code, the processor is to: provide the translated error code to the third node device to cause the third node device to forward the translated error code to the user equipment.
 10. The first node device of claim 8, where the data structure defines standards for translating error codes at an interface connecting the first node device and the second node device.
 11. The first node device of claim 8, where, when translating the error code into the translated error code, the processor is further to: translate the error code into the translated error code based on an error code type provided in the data structure, translate the error code into the translated error code based on an error code description provided in the data structure, translate the error code into the translated error code based on the error code trigger provided in the data structure, translate the error code into the translated error code based on the error code message type provided in the data structure, and translate the error code into the translated error code based on the information identifying the desired behavior of the user equipment as defined in the data structure.
 12. The first node device of claim 8, where the error code is associated with an outage in the evolved packet core network.
 13. The first node device of claim 8, where the first node device includes one of: a mobility management entity (MME), a serving gateway (SGW), or a packet data network (PDN) gateway (PGW).
 14. The first node device of claim 13, where the second node device includes one of: a serving gateway (SGW), a packet data network (PDN) gateway (PGW), a home subscriber server (HSS), an equipment identity register (EIR), or an authentication, authorization, and accounting (AAA) server.
 15. A non-transitory computer-readable medium storing instructions, the instructions comprising: one or more instructions that, when executed by one or more processors of a first node device associated with an evolved packet core network, cause the one or more processors to: receive an error code from a second node device associated with the evolved packet core network, the error code being destined for a user equipment, compare the error code to information stored in a data structure that maps a plurality of error codes to a plurality of translated error codes understood by the user equipment, the data structure including: an error code type, an error code trigger, and information identifying a desired behavior of the user equipment, translate the error code into a translated error code based on comparing the error code to the information stored in the data structure, the translated error code being in a format that is understood by the user equipment, and provide the translated error code to the user equipment or to a third node device associated with the evolved packet core network.
 16. The non-transitory computer-readable medium of claim 15, where the one or more instructions to provide the translated error code include: one or more instructions to provide the translated error code to the third node device to cause the third node device to forward the translated error code to the user equipment.
 17. The non-transitory computer-readable medium of claim 15, where the data structure defines standards for translating error codes at an interface connecting the first node device and the second node device.
 18. The non-transitory computer-readable medium of claim 15, where the data structure further includes: an error code description, and an error code message type.
 19. The non-transitory computer-readable medium of claim 15, where the first node device includes one of: a mobility management entity (MME), a serving gateway (SGW), or a packet data network (PDN) gateway (PGW).
 20. The non-transitory computer-readable medium of claim 15, where the second node device includes one of: a serving gateway (SGW), a packet data network (PDN) gateway (PGW), a home subscriber server (HSS), an equipment identity register (EIR), or an authentication, authorization, and accounting (AAA) server. 